#!/bin/bash

# 镜像名称
MIRROR_NAME=uav-builder

echo $MIRROR_NAME
# 版本
VERSION=latest
# 运行时容器名称
CONTAINER_NAME=$MIRROR_NAME-$VERSION
# 打包好的名称查看package.json中的 build:linux --output 中的名称
OUT_PUT_NAME=uav-linux

# redis监听文件
OUT_PUT_NAME2=uav-redis-key-expire-listener-linux


echo "生成容器镜像"
docker build -t $MIRROR_NAME:$VERSION .

echo "运行临时容器"
# docker run -dit --rm --name $CONTAINER_NAME  $MIRROR_NAME:$VERSION /bin/bash
docker run -dit --rm --name $CONTAINER_NAME  $MIRROR_NAME:$VERSION /bin/bash


echo "删除旧的build目录"
rm -rf $(pwd)/build/

echo "创建build/linux/node_modules目录"
mkdir -p $(pwd)/build/linux/node_modules

echo "复制可执行文件到当前目录下的/build/linux下"
docker cp $CONTAINER_NAME:/app/$OUT_PUT_NAME $(pwd)/build/linux/
docker cp $CONTAINER_NAME:/app/$OUT_PUT_NAME2 $(pwd)/build/linux/
docker cp $CONTAINER_NAME:/app/node_modules/.prisma $(pwd)/build/linux/node_modules/.prisma
docker cp $CONTAINER_NAME:/app/node_modules/.store/canvas@3.2.0 $(pwd)/build/linux/node_modules/.store
docker cp $CONTAINER_NAME:/app/start.sh $(pwd)/build/linux/
docker cp $CONTAINER_NAME:/app/stop.sh $(pwd)/build/linux/
docker cp $CONTAINER_NAME:/app/stop_redis_listener.sh $(pwd)/build/linux/
docker cp $CONTAINER_NAME:/app/start_redis_listener.sh $(pwd)/build/linux/

echo "停止临时容器"
docker stop $CONTAINER_NAME

echo "删除临时容器"
docker rmi $MIRROR_NAME

echo "打包完成,请复制build/linux下的文件到目标机器"
echo "》》》》》》》》》》注意事项《《《《《《《《《《"
echo "把相关文件放到服务器后需要启用,启用后会报错,需要看报错的路径,根据报错的路径,把.store文件夹放到报错的路径下,然后再次启动"